home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Personal Computer World 2009 February
/
PCWFEB09.iso
/
Software
/
Resources
/
Chat & Communication
/
Digsby build 37
/
digsby_setup.exe
/
lib
/
compiler
/
future.pyo
(
.txt
)
< prev
next >
Wrap
Python Compiled Bytecode
|
2008-10-13
|
3KB
|
83 lines
# Source Generated with Decompyle++
# File: in.pyo (Python 2.5)
from compiler import ast, walk
def is_future(stmt):
if not isinstance(stmt, ast.From):
return 0
if stmt.modname == '__future__':
return 1
else:
return 0
class FutureParser:
features = ('nested_scopes', 'generators', 'division', 'absolute_import', 'with_statement')
def __init__(self):
self.found = { }
def visitModule(self, node):
stmt = node.node
for s in stmt.nodes:
if not self.check_stmt(s):
break
continue
def check_stmt(self, stmt):
if is_future(stmt):
for name, asname in stmt.names:
if name in self.features:
self.found[name] = 1
continue
raise SyntaxError, 'future feature %s is not defined' % name
stmt.valid_future = 1
return 1
return 0
def get_features(self):
return self.found.keys()
class BadFutureParser:
def visitFrom(self, node):
if hasattr(node, 'valid_future'):
return None
if node.modname != '__future__':
return None
raise SyntaxError, 'invalid future statement ' + repr(node)
def find_futures(node):
p1 = FutureParser()
p2 = BadFutureParser()
walk(node, p1)
walk(node, p2)
return p1.get_features()
if __name__ == '__main__':
import sys
from compiler import parseFile, walk
for file in sys.argv[1:]:
print file
tree = parseFile(file)
v = FutureParser()
walk(tree, v)
print v.found
print